/**
 * jQuery EasyUI 1.4
 * 
 * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
 * To use it on other terms please contact us at info@jeasyui.com
 *
 */
(function ($) {
    $.fn._remove = function () {
        return this.each(function () {
            $(this).remove();
            try {
                this.outerHTML = "";
            }
            catch (err) {
            }
        });
    };
    function _1(_2) {
        _2._remove();
    };
    function _3(_4, _5) {
        var _6 = $.data(_4, "panel");
        var _7 = _6.options;
        var _8 = _6.panel;
        var _9 = _8.children("div.panel-header");
        var _a = _8.children("div.panel-body");
        if (_5) {
            $.extend(_7, { width: _5.width, height: _5.height, minWidth: _5.minWidth, maxWidth: _5.maxWidth, minHeight: _5.minHeight, maxHeight: _5.maxHeight, left: _5.left, top: _5.top });
        }
        _8._size(_7);
        _9.add(_a)._outerWidth(_8.width());
        if (!isNaN(parseInt(_7.height))) {
            _a._outerHeight(_8.height() - _9._outerHeight());
        } else {
            _a.css("height", "");
            var _b = $.parser.parseValue("minHeight", _7.minHeight, _8.parent());
            var _c = $.parser.parseValue("maxHeight", _7.maxHeight, _8.parent());
            var _d = _9._outerHeight() + _8._outerHeight() - _8.height();
            _a._size("minHeight", _b ? (_b - _d) : "");
            _a._size("maxHeight", _c ? (_c - _d) : "");
        }
        _8.css({ height: "", minHeight: "", maxHeight: "", left: _7.left, top: _7.top });
        _7.onResize.apply(_4, [_7.width, _7.height]);
        $(_4).panel("doLayout");
    };
    function _e(_f, _10) {
        var _11 = $.data(_f, "panel").options;
        var _12 = $.data(_f, "panel").panel;
        if (_10) {
            if (_10.left != null) {
                _11.left = _10.left;
            }
            if (_10.top != null) {
                _11.top = _10.top;
            }
        }
        _12.css({ left: _11.left, top: _11.top });
        _11.onMove.apply(_f, [_11.left, _11.top]);
    };
    function _13(_14) {
        $(_14).addClass("panel-body")._size("clear");
        var _15 = $("<div class=\"panel\"></div>").insertBefore(_14);
        _15[0].appendChild(_14);
        _15.bind("_resize", function (e, _16) {
            if ($(this).hasClass("easyui-fluid") || _16) {
                _3(_14);
            }
            return false;
        });
        return _15;
    };
    function _17(_18) {
        var _19 = $.data(_18, "panel");
        var _1a = _19.options;
        var _1b = _19.panel;
        _1b.css(_1a.style);
        _1b.addClass(_1a.cls);
        _1c();
        var _1d = $(_18).panel("header");
        var _1e = $(_18).panel("body");
        if (_1a.border) {
            _1d.removeClass("panel-header-noborder");
            _1e.removeClass("panel-body-noborder");
        } else {
            _1d.addClass("panel-header-noborder");
            _1e.addClass("panel-body-noborder");
        }
        _1d.addClass(_1a.headerCls);
        _1e.addClass(_1a.bodyCls);
        $(_18).attr("id", _1a.id || "");
        if (_1a.content) {
            $(_18).panel("clear");
            $(_18).html(_1a.content);
            $.parser.parse($(_18));
        }
        function _1c() {
            if (_1a.tools && typeof _1a.tools == "string") {
                _1b.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(_1a.tools);
            }
            _1(_1b.children("div.panel-header"));
            if (_1a.title && !_1a.noheader) {
                var _1f = $("<div class=\"panel-header\"></div>").prependTo(_1b);
                var _20 = $("<div class=\"panel-title\"></div>").html(_1a.title).appendTo(_1f);
                if (_1a.iconCls) {
                    _20.addClass("panel-with-icon");
                    $("<div class=\"panel-icon\"></div>").addClass(_1a.iconCls).appendTo(_1f);
                }
                var _21 = $("<div class=\"panel-tool\"></div>").appendTo(_1f);
                _21.bind("click", function (e) {
                    e.stopPropagation();
                });
                if (_1a.tools) {
                    if ($.isArray(_1a.tools)) {
                        for (var i = 0; i < _1a.tools.length; i++) {
                            var t = $("<a href=\"javascript:void(0)\"></a>").addClass(_1a.tools[i].iconCls).appendTo(_21);
                            if (_1a.tools[i].handler) {
                                t.bind("click", eval(_1a.tools[i].handler));
                            }
                        }
                    } else {
                        $(_1a.tools).children().each(function () {
                            $(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(_21);
                        });
                    }
                }
                if (_1a.collapsible) {
                    $("<a class=\"panel-tool-collapse\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click", function () {
                        if (_1a.collapsed == true) {
                            _46(_18, true);
                        } else {
                            _36(_18, true);
                        }
                        return false;
                    });
                }
                if (_1a.minimizable) {
                    $("<a class=\"panel-tool-min\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click", function () {
                        _51(_18);
                        return false;
                    });
                }
                if (_1a.maximizable) {
                    $("<a class=\"panel-tool-max\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click", function () {
                        if (_1a.maximized == true) {
                            _55(_18);
                        } else {
                            _35(_18);
                        }
                        return false;
                    });
                }
                if (_1a.closable) {
                    $("<a class=\"panel-tool-close\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click", function () {
                        _22(_18);
                        return false;
                    });
                }
                _1b.children("div.panel-body").removeClass("panel-body-noheader");
            } else {
                _1b.children("div.panel-body").addClass("panel-body-noheader");
            }
        };
    };
    function _23(_24, _25) {
        var _26 = $.data(_24, "panel");
        var _27 = _26.options;
        if (_28) {
            _27.queryParams = _25;
        }
        if (!_27.href) {
            return;
        }
        if (!_26.isLoaded || !_27.cache) {
            var _28 = $.extend({}, _27.queryParams);
            if (_27.onBeforeLoad.call(_24, _28) == false) {
                return;
            }
            _26.isLoaded = false;
            $(_24).panel("clear");
            if (_27.loadingMessage) {
                $(_24).html($("<div class=\"panel-loading\"></div>").html(_27.loadingMessage));
            }
            _27.loader.call(_24, _28, function (_29) {
                var _2a = _27.extractor.call(_24, _29);
                $(_24).html(_2a);
                $.parser.parse($(_24));
                _27.onLoad.apply(_24, arguments);
                _26.isLoaded = true;
            }, function () {
                _27.onLoadError.apply(_24, arguments);
            });
        }
    };
    function _2b(_2c) {
        var t = $(_2c);
        t.find(".combo-f").each(function () {
            $(this).combo("destroy");
        });
        t.find(".m-btn").each(function () {
            $(this).menubutton("destroy");
        });
        t.find(".s-btn").each(function () {
            $(this).splitbutton("destroy");
        });
        t.find(".tooltip-f").each(function () {
            $(this).tooltip("destroy");
        });
        t.children("div").each(function () {
            $(this)._size("unfit");
        });
        t.empty();
    };
    function _2d(_2e) {
        $(_2e).panel("doLayout", true);
    };
    function _2f(_30, _31) {
        var _32 = $.data(_30, "panel").options;
        var _33 = $.data(_30, "panel").panel;
        if (_31 != true) {
            if (_32.onBeforeOpen.call(_30) == false) {
                return;
            }
        }
        _33.show();
        _32.closed = false;
        _32.minimized = false;
        var _34 = _33.children("div.panel-header").find("a.panel-tool-restore");
        if (_34.length) {
            _32.maximized = true;
        }
        _32.onOpen.call(_30);
        if (_32.maximized == true) {
            _32.maximized = false;
            _35(_30);
        }
        if (_32.collapsed == true) {
            _32.collapsed = false;
            _36(_30);
        }
        if (!_32.collapsed) {
            _23(_30);
            _2d(_30);
        }
    };
    function _22(_37, _38) {
        var _39 = $.data(_37, "panel").options;
        var _3a = $.data(_37, "panel").panel;
        if (_38 != true) {
            if (_39.onBeforeClose.call(_37) == false) {
                return;
            }
        }
        _3a._size("unfit");
        _3a.hide();
        _39.closed = true;
        _39.onClose.call(_37);
    };
    function _3b(_3c, _3d) {
        var _3e = $.data(_3c, "panel").options;
        var _3f = $.data(_3c, "panel").panel;
        if (_3d != true) {
            if (_3e.onBeforeDestroy.call(_3c) == false) {
                return;
            }
        }
        $(_3c).panel("clear");
        _1(_3f);
        _3e.onDestroy.call(_3c);
    };
    function _36(_40, _41) {
        var _42 = $.data(_40, "panel").options;
        var _43 = $.data(_40, "panel").panel;
        var _44 = _43.children("div.panel-body");
        var _45 = _43.children("div.panel-header").find("a.panel-tool-collapse");
        if (_42.collapsed == true) {
            return;
        }
        _44.stop(true, true);
        if (_42.onBeforeCollapse.call(_40) == false) {
            return;
        }
        _45.addClass("panel-tool-expand");
        if (_41 == true) {
            _44.slideUp("normal", function () {
                _42.collapsed = true;
                _42.onCollapse.call(_40);
            });
        } else {
            _44.hide();
            _42.collapsed = true;
            _42.onCollapse.call(_40);
        }
    };
    function _46(_47, _48) {
        var _49 = $.data(_47, "panel").options;
        var _4a = $.data(_47, "panel").panel;
        var _4b = _4a.children("div.panel-body");
        var _4c = _4a.children("div.panel-header").find("a.panel-tool-collapse");
        if (_49.collapsed == false) {
            return;
        }
        _4b.stop(true, true);
        if (_49.onBeforeExpand.call(_47) == false) {
            return;
        }
        _4c.removeClass("panel-tool-expand");
        if (_48 == true) {
            _4b.slideDown("normal", function () {
                _49.collapsed = false;
                _49.onExpand.call(_47);
                _23(_47);
                _2d(_47);
            });
        } else {
            _4b.show();
            _49.collapsed = false;
            _49.onExpand.call(_47);
            _23(_47);
            _2d(_47);
        }
    };
    function _35(_4d) {
        var _4e = $.data(_4d, "panel").options;
        var _4f = $.data(_4d, "panel").panel;
        var _50 = _4f.children("div.panel-header").find("a.panel-tool-max");
        if (_4e.maximized == true) {
            return;
        }
        _50.addClass("panel-tool-restore");
        if (!$.data(_4d, "panel").original) {
            $.data(_4d, "panel").original = { width: _4e.width, height: _4e.height, left: _4e.left, top: _4e.top, fit: _4e.fit };
        }
        _4e.left = 0;
        _4e.top = 0;
        _4e.fit = true;
        _3(_4d);
        _4e.minimized = false;
        _4e.maximized = true;
        _4e.onMaximize.call(_4d);
    };
    function _51(_52) {
        var _53 = $.data(_52, "panel").options;
        var _54 = $.data(_52, "panel").panel;
        _54._size("unfit");
        _54.hide();
        _53.minimized = true;
        _53.maximized = false;
        _53.onMinimize.call(_52);
    };
    function _55(_56) {
        var _57 = $.data(_56, "panel").options;
        var _58 = $.data(_56, "panel").panel;
        var _59 = _58.children("div.panel-header").find("a.panel-tool-max");
        if (_57.maximized == false) {
            return;
        }
        _58.show();
        _59.removeClass("panel-tool-restore");
        $.extend(_57, $.data(_56, "panel").original);
        _3(_56);
        _57.minimized = false;
        _57.maximized = false;
        $.data(_56, "panel").original = null;
        _57.onRestore.call(_56);
    };
    function _5a(_5b, _5c) {
        $.data(_5b, "panel").options.title = _5c;
        $(_5b).panel("header").find("div.panel-title").html(_5c);
    };
    var _5d = null;
    $(window).unbind(".panel").bind("resize.panel", function () {
        if (_5d) {
            clearTimeout(_5d);
        }
        _5d = setTimeout(function () {
            var _5e = $("body.layout");
            if (_5e.length) {
                _5e.layout("resize");
            } else {
                $("body").panel("doLayout");
            }
            _5d = null;
        }, 100);
    });
    $.fn.panel = function (_5f, _60) {
        if (typeof _5f == "string") {
            return $.fn.panel.methods[_5f](this, _60);
        }
        _5f = _5f || {};
        return this.each(function () {
            var _61 = $.data(this, "panel");
            var _62;
            if (_61) {
                _62 = $.extend(_61.options, _5f);
                _61.isLoaded = false;
            } else {
                _62 = $.extend({}, $.fn.panel.defaults, $.fn.panel.parseOptions(this), _5f);
                $(this).attr("title", "");
                _61 = $.data(this, "panel", { options: _62, panel: _13(this), isLoaded: false });
            }
            _17(this);
            if (_62.doSize == true) {
                _61.panel.css("display", "block");
                _3(this);
            }
            if (_62.closed == true || _62.minimized == true) {
                _61.panel.hide();
            } else {
                _2f(this);
            }
        });
    };
    $.fn.panel.methods = {
        options: function (jq) {
            return $.data(jq[0], "panel").options;
        }, panel: function (jq) {
            return $.data(jq[0], "panel").panel;
        }, header: function (jq) {
            return $.data(jq[0], "panel").panel.find(">div.panel-header");
        }, body: function (jq) {
            return $.data(jq[0], "panel").panel.find(">div.panel-body");
        }, setTitle: function (jq, _63) {
            return jq.each(function () {
                _5a(this, _63);
            });
        }, open: function (jq, _64) {
            return jq.each(function () {
                _2f(this, _64);
            });
        }, close: function (jq, _65) {
            return jq.each(function () {
                _22(this, _65);
            });
        }, destroy: function (jq, _66) {
            return jq.each(function () {
                _3b(this, _66);
            });
        }, clear: function (jq) {
            return jq.each(function () {
                _2b(this);
            });
        }, refresh: function (jq, _67) {
            return jq.each(function () {
                var _68 = $.data(this, "panel");
                _68.isLoaded = false;
                if (_67) {
                    if (typeof _67 == "string") {
                        _68.options.href = _67;
                    } else {
                        _68.options.queryParams = _67;
                    }
                }
                _23(this);
            });
        }, resize: function (jq, _69) {
            return jq.each(function () {
                _3(this, _69);
            });
        }, doLayout: function (jq, all) {
            return jq.each(function () {
                var _6a = this;
                var _6b = _6a == $("body")[0];
                var s = $(this).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible,.easyui-fluid:visible").filter(function (_6c, el) {
                    var p = $(el).parents("div.panel-body:first");
                    if (_6b) {
                        return p.length == 0;
                    } else {
                        return p[0] == _6a;
                    }
                });
                s.trigger("_resize", [all || false]);
            });
        }, move: function (jq, _6d) {
            return jq.each(function () {
                _e(this, _6d);
            });
        }, maximize: function (jq) {
            return jq.each(function () {
                _35(this);
            });
        }, minimize: function (jq) {
            return jq.each(function () {
                _51(this);
            });
        }, restore: function (jq) {
            return jq.each(function () {
                _55(this);
            });
        }, collapse: function (jq, _6e) {
            return jq.each(function () {
                _36(this, _6e);
            });
        }, expand: function (jq, _6f) {
            return jq.each(function () {
                _46(this, _6f);
            });
        }
    };
    $.fn.panel.parseOptions = function (_70) {
        var t = $(_70);
        return $.extend(
            {},
            $.parser.parseOptions(
                _70,
                [
                    "id", "width", "height", "left", "top", "title", "iconCls", "cls", "headerCls", "bodyCls",
                    "tools", "href", "method",
                    { cache: "boolean", fit: "boolean", border: "boolean", noheader: "boolean" },
                    { collapsible: "boolean", minimizable: "boolean", maximizable: "boolean" },
                    { closable: "boolean", collapsed: "boolean", minimized: "boolean", maximized: "boolean", closed: "boolean" }
                ]),
            { loadingMessage: (t.attr("loadingMessage") != undefined ? t.attr("loadingMessage") : undefined) }
            );
    };
    $.fn.panel.defaults = {
        id: null, title: null, iconCls: null,
        width: "auto", height: "auto",
        left: null, top: null, cls: null, headerCls: null, bodyCls: null, style: {},
        href: null, cache: true, fit: false, border: true, doSize: true, noheader: false,
        content: null, collapsible: false, minimizable: false, maximizable: false,
        closable: false, collapsed: false, minimized: false, maximized: false, closed: false,
        tools: null, queryParams: {}, method: "get", href: null,
        loadingMessage: "Loading...",
        loader: function (_71, _72, _73) {
            var _74 = $(this).panel("options");
            if (!_74.href) {
                return false;
            }
            $.ajax({
                type: _74.method, url: _74.href, cache: false, data: _71, dataType: "html",
                success: function (_75) {
                    _72(_75);
                }, error: function () {
                    _73.apply(this, arguments);
                }
            });
        }, extractor: function (_76) {
            var _77 = /<body[^>]*>((.|[\n\r])*)<\/body>/im;
            var _78 = _77.exec(_76);
            if (_78) {
                return _78[1];
            } else {
                return _76;
            }
        }, onBeforeLoad: function (_79) {
        }, onLoad: function () {
        }, onLoadError: function () {
        }, onBeforeOpen: function () {
        }, onOpen: function () {
        }, onBeforeClose: function () {
        }, onClose: function () {
        }, onBeforeDestroy: function () {
        }, onDestroy: function () {
        }, onResize: function (_7a, _7b) {
        }, onMove: function (_7c, top) {
        }, onMaximize: function () {
        }, onRestore: function () {
        }, onMinimize: function () {
        }, onBeforeCollapse: function () {
        }, onBeforeExpand: function () {
        }, onCollapse: function () {
        }, onExpand: function () {
        }
    };
})(jQuery);

